package com.wang.study.service.impl;

import com.wang.study.commons.MybatisUtils;
import com.wang.study.mapper.CartMapper;
import com.wang.study.model.Cart;
import com.wang.study.model.CartAndUidAndCategory;
import com.wang.study.service.CartService;

import java.util.List;

public class CartServiceImp implements CartService {

    private CartMapper cartMapper;

    public CartServiceImp(){
        cartMapper= MybatisUtils.getMapper(CartMapper.class);
    }

    /**
     * 加入购物车数据
     * @param cart
     * @return
     */
    @Override
    public Integer insertCart(Cart cart) {
        //先查询如果购物车中有重复的记录，则执行更新操作，不存在，插入
        //uid gid nums total
        Integer i = 0;
        Cart cartDB = cartMapper.findCartByUidAndGid(cart.getUserid(),cart.getGoodid());
        if(null!=cartDB){//执行修改操作
            cartDB.setNums(cartDB.getNums()+cart.getNums());
            cartDB.setTotal(cartDB.getTotal()+cart.getTotal());
            i = cartMapper.updateCart(cartDB);
        }else{//执行插入操作
            i = cartMapper.insertCart(cart);
        }
        return i;
    }

    /**
     * 通过uid找购物车商品
     * @param uid
     * @return
     */
    @Override
    public List<Cart> selectCartByUid(Integer uid) {
        List<Cart> cart = cartMapper.selectCartByUid(uid);
        return cart;
    }

    /**
     * 查询完整购物车信息
     * @param goodid
     * @param goodid
     * @return
     */
    @Override
    public CartAndUidAndCategory selectCart(Integer goodid) {
        CartAndUidAndCategory cart = cartMapper.selectCart(goodid);
        return cart;
    }

    /**
     * 通过id删除购物车信息
     * @param id
     * @return
     */
    @Override
    public Integer delCartById(Integer id) {
        Integer i = cartMapper.delCartById(id);
        return i;
    }

    @Override
    public Integer upDateById(Integer id, Integer num, Integer total) {
        Integer i = cartMapper.upDateById(id,num,total);
        return i;
    }
}
